home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol285 / introduc.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1987-03-15  |  12.6 KB  |  389 lines

  1. 100  REM INTRODUC Program.
  2. 110  REM Documentation.  Introduction.
  3. 120  REM Copyright (c) 1983 - 1987 by: Melvin O. Duke.
  4. 130  DATA Genealogy
  5. 140  DATA User's Manual
  6. 150  DATA -5
  7. 160  DATA 1
  8. 170  INDENT = 0
  9. 180  REM Printer Definitions
  10. 190  FORM.FEED$  = CHR$(12)
  11. 200  COMPR.OFF$  = CHR$(18)     : COMPR.ON$ = CHR$(15)
  12. 210  BOLD.OFF$   = CHR$(27)+"F" : BOLD.ON$ = CHR$(27)+"E"
  13. 220  EXPAND.OFF$ = CHR$(18)     : EXPAND.ON$ = CHR$(14)
  14. 230  DASHES$ = "+"+STRING$(54,45)+"+"
  15. 240  TRIM.LINE$ = "(Trim-line)"
  16. 300  REM Program begins here
  17. 310  READ TITLE$, DOC.NAME$, PAGE.NO, LINE.NO
  18. 320  IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
  19. 330  GOSUB 920  'For trim line and heading space
  20. 340  FOR I = 1 TO 6 : LPRINT : NEXT I
  21. 350  LPRINT BOLD.ON$;     'Set Emphasized mode
  22. 360  LPRINT EXPAND.ON$;   'Set Expanded Print
  23. 370  LPRINT TAB(TAB.POS-1);TITLE$
  24. 380  LPRINT EXPAND.OFF$;  'Return to normal
  25. 390  LPRINT BOLD.OFF$;    'Return to normal
  26. 400  FOR I = 1 TO 3 : LPRINT : NEXT I
  27. 410  LPRINT BOLD.ON$;     'Set Emphasized mode
  28. 420  LPRINT TAB(TAB.POS+12);"ON DISPLAY"
  29. 430  LPRINT BOLD.OFF$;    'Return to normal
  30. 440  LPRINT : LPRINT : LPRINT
  31. 450  LPRINT TAB(TAB.POS+11);"Version 5.0"
  32. 460  FOR I = 1 TO 11 : LPRINT : NEXT I
  33. 470  LPRINT TAB(TAB.POS+10); DOC.NAME$
  34. 480  LINE.NO = LINE.NO + 27
  35. 490  '
  36. 500  READ REPLY$
  37. 510  REM First, change tildes to quotes
  38. 520  FOR Q = 1 TO LEN(REPLY$)
  39. 530   IF MID$(REPLY$,Q,1)="~"THEN MID$(REPLY$,Q,1)=CHR$(34)
  40. 540  NEXT Q
  41. 550  IF LEFT$(REPLY$,1) = "." THEN GOSUB 1270: GOTO 500
  42. 560  IF LINE.NO > 44 THEN GOSUB 1030
  43. 570  REM Print the line if not a command
  44. 580  LPRINT TAB(TAB.POS);REPLY$
  45. 590  LINE.NO = LINE.NO + 1
  46. 600  IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
  47. 610  GOTO 500
  48. 620  REM Data for the Copyright Page
  49. 630  DATA ".pa"
  50. 640  DATA " "
  51. 750  DATA ".vt 12"
  52. 760  DATA "Users are encouraged to copy and share"
  53. 770  DATA "the programs with others."
  54. 780  DATA ".vt 5"
  55. 790  DATA "If you are using these programs, you are"
  56. 800  DATA "expected to become a Registered User,"
  57. 810  DATA "by making a contribution to the author"
  58. 815  DATA "of the programs ($45.00 suggested)."
  59. 820  DATA ".sp"
  60. 830  DATA "Melvin O. Duke"
  61. 840  DATA "P. O. Box 20836"
  62. 850  DATA "San Jose, CA  95160"
  63. 860  DATA ".vt 4"
  64. 870  DATA "Copyright (c) 1983 through 1987, by:"
  65. 880  DATA "Melvin O. Duke."
  66. 890  DATA ".sp"
  67. 900  DATA "All rights reserved."
  68. 910  '
  69. 920  REM Top of each page routine
  70. 930  IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
  71. 940  LPRINT
  72. 950  LPRINT TAB(30); TRIM.LINE$
  73. 960  LPRINT DASHES$ 'Dashes
  74. 970  FOR I = 1 TO 6
  75. 980   LPRINT
  76. 990  NEXT I
  77. 1000  LINE.NO = LINE.NO + 6
  78. 1010  RETURN
  79. 1020  '
  80. 1030  REM Bottom of each page Routine
  81. 1040  IF PAGE.NO < 1 THEN LPRINT : LPRINT : LPRINT : GOTO 1160
  82. 1050  LPRINT TAB(TAB.POS); STRING$(40,45)  'on line 46
  83. 1060  LPRINT TAB(TAB.POS+3); TITLE$+" ON DISPLAY.  Version 5.0" 'on line 47
  84. 1070  IF PAGE.NO MOD 2 = 1 THEN 1110
  85. 1080  LPRINT TAB(TAB.POS);"Page";PAGE.NO;
  86. 1090  LPRINT TAB(TAB.POS+27);"User's Manual"
  87. 1100  GOTO 1160
  88. 1110  LPRINT TAB(TAB.POS); "User's Manual";
  89. 1120  IF PAGE.NO < 10 THEN DELTA = 34
  90. 1130  IF PAGE.NO >  9 THEN DELTA = 33
  91. 1140  IF PAGE.NO > 99 THEN DELTA = 32
  92. 1150  LPRINT TAB(TAB.POS+DELTA); "Page"; PAGE.NO  'on line 48
  93. 1160  LPRINT : LPRINT : LPRINT
  94. 1170  LPRINT DASHES$ 'dashes after 51
  95. 1180  LPRINT TAB(30); TRIM.LINE$
  96. 1190  LPRINT FORM.FEED$;
  97. 1200  PAGE.NO = PAGE.NO + 1
  98. 1210  LINE.NO = 1
  99. 1220  IF REPLY$ = ".eof" THEN 1240  'Bypass after last page
  100. 1230  GOSUB 920  'For top of next page
  101. 1240  IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
  102. 1250  RETURN
  103. 1260  '
  104. 1270  REM Command Processor
  105. 1280  IF LEFT$(REPLY$,3) = ".h1" THEN 1390
  106. 1290  IF LEFT$(REPLY$,3) = ".h2" THEN 1550
  107. 1300  IF LEFT$(REPLY$,3) = ".h3" THEN 1660
  108. 1310  IF LEFT$(REPLY$,3) = ".sp" THEN 1770
  109. 1320  IF LEFT$(REPLY$,4) = ".eof" THEN 1820
  110. 1330  IF LEFT$(REPLY$,3) = ".pa" THEN 1860
  111. 1340  IF LEFT$(REPLY$,3) = ".pn" THEN PAGE.NO = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3)) : RETURN
  112. 1350  IF LEFT$(REPLY$,3) = ".vt" THEN 1930
  113. 1360  IF LEFT$(REPLY$,3) = ".pk" THEN 2040
  114. 1370  IF LEFT$(REPLY$,3) = ".in" THEN 2170
  115. 1380  STOP
  116. 1390  REM Head 1 Processor
  117. 1400  FOR I = LINE.NO TO 44
  118. 1410   LPRINT
  119. 1420  NEXT I
  120. 1430  GOSUB 1030  'Bottom of page Routine
  121. 1440  IF PAGE.NO MOD 2 = 0 THEN GOSUB 1860  'For h1 on Odd pages
  122. 1450  LPRINT BOLD.ON$;     'Set emphasized print
  123. 1460  LPRINT EXPAND.ON$;   'Set expanded print
  124. 1470  IF PAGE.NO MOD 2 = 0 THEN ADJUST = -2 ELSE ADJUST = -5
  125. 1480  LPRINT TAB(TAB.POS+ADJUST); RIGHT$(REPLY$,LEN(REPLY$)-4)
  126. 1490  LPRINT EXPAND.OFF$;  'Return to normal
  127. 1500  LPRINT BOLD.OFF$;    'Return to non-bold
  128. 1510  LINE.NO = LINE.NO+1
  129. 1520  IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
  130. 1530  RETURN
  131. 1540  '
  132. 1550  REM Head 2 Processor
  133. 1560  IF LINE.NO = 7 THEN 1580 'skip spacing if at top of page
  134. 1570  IF LINE.NO > 43 THEN GOSUB 1860 ELSE LPRINT:LPRINT:LINE.NO = LINE.NO+2
  135. 1580  LPRINT BOLD.ON$;  'Set emphasized print
  136. 1590  LPRINT TAB(TAB.POS+1); RIGHT$(REPLY$,LEN(REPLY$)-4)
  137. 1600  LPRINT BOLD.OFF$; 'Return to normal
  138. 1610  LPRINT
  139. 1620  LINE.NO = LINE.NO + 2
  140. 1630  IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
  141. 1640  RETURN
  142. 1650  '
  143. 1660  REM Head 3 Processor
  144. 1670  IF LINE.NO = 7 THEN 1690 'skip spacing if at top of page
  145. 1680  IF LINE.NO > 43 THEN GOSUB 1860 ELSE LPRINT:LPRINT:LINE.NO = LINE.NO+2
  146. 1690  LPRINT BOLD.ON$;  'Set emphasized print
  147. 1700  LPRINT TAB(TAB.POS+1); RIGHT$(REPLY$,LEN(REPLY$)-4)
  148. 1710  LPRINT BOLD.OFF$; 'Return to normal
  149. 1720  LPRINT
  150. 1730  LINE.NO = LINE.NO + 2
  151. 1740  IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
  152. 1750  RETURN
  153. 1760  '
  154. 1770  REM Single Space Processor
  155. 1780  IF LINE.NO = 7 THEN 1800
  156. 1790  IF LINE.NO > 44 THEN GOSUB 1860 ELSE LPRINT : LINE.NO = LINE.NO + 1
  157. 1800  IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
  158. 1810  RETURN
  159. 1820  REM End of File Processor
  160. 1830  GOSUB 1860 'Bottom of Page
  161. 1850  GOTO 4920
  162. 1860  REM Page Eject Processor
  163. 1870  FOR I = LINE.NO TO 44
  164. 1880   LPRINT
  165. 1890   LINE.NO = LINE.NO + 1
  166. 1900  NEXT I
  167. 1910  GOSUB 1030  'Bottom of Page Processing
  168. 1920  RETURN
  169. 1930  REM Vertical Tab Processor
  170. 1940  IF LINE.NO = 7 THEN 2030
  171. 1950  IF LINE.NO > 44 THEN GOSUB 1030  'End of page
  172. 1960  QTY = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3))
  173. 1970  FOR I = 1 TO QTY
  174. 1980   LPRINT
  175. 1990   LINE.NO = LINE.NO + 1
  176. 2000   IF LINE.NO > 44 THEN I = QTY
  177. 2010  NEXT I
  178. 2020  IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
  179. 2030  RETURN
  180. 2040  REM Pack Processor
  181. 2050  IF LINE.NO > 44 THEN GOSUB 1030
  182. 2060  IF TAB.POS = 8 THEN ADJUST = 4
  183. 2070  IF TAB.POS = 13 THEN ADJUST = 7
  184. 2080  TAB.POS = TAB.POS + ADJUST + INDENT
  185. 2090  WIDTH "lpt1:", 132 'set condensed width
  186. 2100  LPRINT COMPR.ON$;  'Packed printing
  187. 2110  LPRINT TAB(TAB.POS); RIGHT$(REPLY$,LEN(REPLY$)-3)
  188. 2120  LPRINT COMPR.OFF$; 'Return to normal
  189. 2130  WIDTH "lpt1:", 80  'return to normal
  190. 2140  LINE.NO = LINE.NO + 1
  191. 2150  IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 ELSE TAB.POS = 13
  192. 2160  RETURN
  193. 2170  REM Indent Processor
  194. 2180  INDENT = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3))
  195. 2190  RETURN
  196. 3000  DATA ".h1 INTRODUCTION"
  197. 3010  DATA ".pn 1"
  198. 3020  DATA ".h2 OVERVIEW"
  199. 3030  DATA "The Genealogy ON DISPLAY programs pro-"
  200. 3040  DATA "vide the user with the capability to"
  201. 3050  DATA "create and maintain data files which"
  202. 3060  DATA "contain information about his or her"
  203. 3070  DATA "ancestors and relatives, to interro-"
  204. 3080  DATA "gate the contents of the files, and to"
  205. 3090  DATA "obtain printouts of pedigree charts,"
  206. 3100  DATA "family group sheets, and descendents"
  207. 3110  DATA "charts in standard formats, using the"
  208. 3120  DATA "information from those files."
  209. 3130  DATA ".sp"
  210. 3140  DATA "Other than the total size of the files,"
  211. 3150  DATA "there is no practical limit to the"
  212. 3160  DATA "number of generations contained in the"
  213. 3170  DATA "files, or capable of being displayed or"
  214. 3180  DATA "printed."
  215. 3190  DATA ".h2 CAPABILITIES"
  216. 3200  DATA "Following are the capabilities of the"
  217. 3210  DATA "the group of programs known as the"
  218. 3220  DATA "Genealogy ON DISPLAY programs."
  219. 3230  DATA ".pa"
  220. 3240  DATA ".h3 Display the Genealogy."
  221. 3250  DATA "The program 'display' is one of the"
  222. 3260  DATA "four principal programs in the Genealogy"
  223. 3270  DATA "ON DISPLAY set of programs.  (Note: All"
  224. 3280  DATA "of the other programs supplement these"
  225. 3290  DATA "four principal programs.)"
  226. 3300  DATA ".sp"
  227. 3310  DATA "By using the 'display' program, a user"
  228. 3320  DATA "may display personal information, pedi-"
  229. 3330  DATA "grees, and family group information for"
  230. 3340  DATA "any person whose records are in the data"
  231. 3350  DATA "files."
  232. 3360  DATA ".h2 Print Pedigree Charts (Family Trees)"
  233. 3370  DATA "The program 'pedigree' is the second of"
  234. 3380  DATA "the four principal programs in the"
  235. 3390  DATA "Genealogy ON DISPLAY set of programs."
  236. 3400  DATA ".sp"
  237. 3410  DATA "By using this program, a user may obtain"
  238. 3420  DATA "a printout of a pedigree chart (family"
  239. 3430  DATA "tree) for any person whose records are"
  240. 3440  DATA "in the data files."
  241. 3450  DATA ".pa"
  242. 3460  DATA ".h2 Print Family Group Sheets"
  243. 3470  DATA "The program 'family' is the third of the"
  244. 3480  DATA "four principal programs in the Genealogy"
  245. 3490  DATA "ON DISPLAY set of programs."
  246. 3500  DATA ".sp
  247. 3510  DATA "By using this program, a user may obtain"
  248. 3520  DATA "a printout of a family group sheet for"
  249. 3530  DATA "any person whose records are in the data"
  250. 3540  DATA "files."
  251. 3550  DATA ".h2 Produce Descendents Charts"
  252. 3560  DATA "The program 'descend' is the fourth of"
  253. 3570  DATA "the four principal programs in the"
  254. 3580  DATA "Genealogy ON DISPLAY set of programs."
  255. 3590  DATA ".sp
  256. 3600  DATA "By using this program, a user may dis-"
  257. 3610  DATA "play (and optionally obtain a printout)"
  258. 3620  DATA "of the descendants of any person whose"
  259. 3630  DATA "records are in the data files."
  260. 3640  DATA ".h3 Format the Data Files."
  261. 3650  DATA "Three programs, the 'creatper', the"
  262. 3660  DATA "'creatmar', and the 'creatord' programs,"
  263. 3670  DATA "provide formatting of the records in the"
  264. 3680  DATA "'persfile', the 'marrfile', and the"
  265. 3690  DATA "'ordfile' respectively."
  266. 3700  DATA ".pa"
  267. 3710  DATA ".h3 Update the Data Files."
  268. 3720  DATA "Three programs, the 'updatper',  the"
  269. 3730  DATA "'updatmar', and the 'updatord' programs,"
  270. 3740  DATA "permit update of the records in the"
  271. 3750  DATA "'persfile', the 'marrfile', and the"
  272. 3760  DATA "'ordfile' respectively."
  273. 3770  DATA ".h3 Prepare the Indexes."
  274. 3780  DATA "Two programs, the 'indexpc' and the"
  275. 3790  DATA "'indexmar' programs, prepare the"
  276. 3800  DATA "indexes 'pcindex' and 'mindex' respec-"
  277. 3810  DATA "tively."
  278. 3820  DATA ".sp"
  279. 3830  DATA "Note:  These two indexes are essential"
  280. 3840  DATA "to the 'display', 'pedigree', 'family',"
  281. 3850  DATA "and 'descend' programs, as they provide"
  282. 3860  DATA "all of the linkages between persons,"
  283. 3870  DATA "ancestors, and families."
  284. 3880  DATA ".h3 List the Records in the Files."
  285. 3890  DATA "Two programs, the 'listper' and the"
  286. 3900  DATA "'listmar' programs, provide listings"
  287. 3910  DATA "of the records in the 'persfile' and"
  288. 3920  DATA "'marrfile', respectively.  These are"
  289. 3930  DATA "one-line summary listings of the"
  290. 3940  DATA "records in the files."
  291. 3950  DATA ".pa"
  292. 3960  DATA ".h3 Printing the Contents of the Files."
  293. 3970  DATA "Two programs, the 'printper', and the"
  294. 3980  DATA "'printmar' programs, provide for print-"
  295. 3990  DATA "ing individual records or for complete"
  296. 4000  DATA "printouts of the files.  The 'printper"
  297. 4010  DATA "program provides a combined printout"
  298. 4020  DATA "of the 'persfile' and the 'ordfile'."
  299. 4030  DATA "The 'printmar' program provides a"
  300. 4040  DATA "printout of the 'marrfile'."
  301. 4050  DATA ".h3 Alphabetical Lists."
  302. 4060  DATA "Two programs, the 'alphaper', and the"
  303. 4070  DATA "'alphamar' programs, provide alphabetical"
  304. 4080  DATA "listings of the persons in the Persons"
  305. 4090  DATA "File, and marriages in the Marriages"
  306. 4100  DATA "File, respectively.  Note:  These two"
  307. 4110  DATA "lists are very helpful in permitting the"
  308. 4120  DATA "user to locate records of persons and of"
  309. 4130  DATA "marriages."
  310. 4140  DATA ".h3 Parent/Child Index List"
  311. 4150  DATA "One program, the 'listpci' program,"
  312. 4160  DATA "provides a list of all persons who are"
  313. 4170  DATA "parents, together with the children of"
  314. 4180  DATA "those persons."
  315. 4190  DATA ".pa"
  316. 4200  DATA ".h2 BENEFITS/ADVANTAGES"
  317. 4210  DATA "The Genealogy ON DISPLAY programs pro-"
  318. 4220  DATA "vide an organized, cohesive set of"
  319. 4230  DATA "programs, to permit a user to create and"
  320. 4240  DATA "maintain that person's genealogical"
  321. 4250  DATA "information."
  322. 4260  DATA ".sp"
  323. 4270  DATA "One major advantage of this technique is"
  324. 4280  DATA "that the user only enters information a"
  325. 4290  DATA "single time, in a single place.  Hence,"
  326. 4300  DATA "there is never any discrepancy between"
  327. 4310  DATA "separate reportings of the data."
  328. 4320  DATA ".sp"
  329. 4330  DATA "The programs use the relationships be-"
  330. 4340  DATA "tween persons for extracting and report-"
  331. 4350  DATA "ing the data in meaningful formats."
  332. 4360  DATA ".sp"
  333. 4370  DATA "Since most genealogical information is"
  334. 4380  DATA "not complete, whenever new information"
  335. 4390  DATA "is obtained, the user may readily add"
  336. 4400  DATA "that new information (or change any"
  337. 4410  DATA "erroneous old information) as the user"
  338. 4420  DATA "desires."
  339. 4430  DATA ".h2 RESULTS"
  340. 4440  DATA "The final results are a well-organized"
  341. 4450  DATA "set of data files and indices, which"
  342. 4460  DATA "permit a user to obtain related infor-"
  343. 4470  DATA "mation in formats which are meaningful"
  344. 4480  DATA "to that user."
  345. 4490  DATA ".pa"
  346. 4500  DATA "Pedigree Charts, Family Group Sheets and"
  347. 4510  DATA "Descendents Charts, as well as Personal"
  348. 4520  DATA "information about each individual are"
  349. 4530  DATA "are available upon demand, either on the"
  350. 4540  DATA "printer or on the display."
  351. 4550  DATA ".h2 REQUIREMENTS"
  352. 4560  DATA ".h3 Hardware Requirements."
  353. 4570  DATA ".sp"
  354. 4580  DATA "IBM PCjr, PC, or PC/XT, with:"
  355. 4590  DATA ".sp"
  356. 4600  DATA "  One Double-sided Diskette Drive."
  357. 4610  DATA ".sp"
  358. 4620  DATA "  Either the IBM Graphics Printer, the"
  359. 4630  DATA "  IBM Matrix Printer (or equivalents)."
  360. 4640  DATA ".sp"
  361. 4650  DATA "    Note: The IBM Graphics Printer"
  362. 4660  DATA "    and the IBM Matrix Printer"
  363. 4670  DATA "    provide for condensed printing"
  364. 4680  DATA "    of Pedigree Charts and Family"
  365. 4690  DATA "    Group Sheets."
  366. 4700  DATA ".sp"
  367. 4710  DATA "    For full-sized printouts of the"
  368. 4720  DATA "    Pedigree Charts and Family"
  369. 4730  DATA "    Group Sheets, a 132 character"
  370. 4740  DATA "    (10 char/in) printer is required."
  371. 4750  DATA ".sp"
  372. 4760  DATA "  At least 96K of Memory (128 K is"
  373. 4770  DATA "  recommended)."
  374. 4780  DATA ".sp"
  375. 4790  DATA "  Either the IBM Color Display,"
  376. 4800  DATA "  the IBM Monochrome Display (or"
  377. 4810  DATA "  equivalents)."
  378. 4820  DATA ".pa"
  379. 4830  DATA ".h3 Software Requirements."
  380. 4840  DATA ".sp"
  381. 4850  DATA "IBM PC-DOS."
  382. 4860  DATA "  Version 2.1  (or Version 2.0 on"
  383. 4870  DATA "    the IBM PC or the IBM PC/XT).
  384. 4880  DATA ".sp"
  385. 4890  DATA "BASIC"
  386. 4900  DATA "  (on Cartridge or Diskette)."
  387. 4910  DATA ".eof"
  388. 4920  END
  389.